home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
clean
/
sun3.lha
/
Sun3
/
deltaB.abc
< prev
next >
Wrap
Text File
|
1992-08-07
|
4KB
|
316 lines
.comp 800 111111011
.code 136 7 30
.start _nostart_
.endinfo
.implab _cycle_in_spine
.implab _reserve
.implab _type_error
.impdesc _Defer
.implab _defer_code
.implab _hnf
.impdesc _Cons
.impdesc _Tuple
.impdesc _Select
.impdesc _Nil
.implab _driver
.implab e_system_nAP
.implab e_system_sAP
.impdesc e_system_AP
.desc m_deltaB _hnf _hnf 0 "deltaB"
.export e_deltaB_NOT
.export e_deltaB_sNOT
.export e_deltaB_nNOT
.desc e_deltaB_NOT e_deltaB_nNOT e_deltaB_lNOT 1 "NOT"
.o 2 0
e_deltaB_lNOT:
pop_a 1
.d 1 0
jsr eaNOT
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 1 e_deltaB_NOT
.o 1 0
e_deltaB_nNOT:
push_node _reserve 1
.d 1 0
jsr eaNOT
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 1 0
eaNOT:
|| BOOL
jsr_eval
|| BOOL
pushB_a 0
pop_a 1
.o 0 1 b
e_deltaB_sNOT:
.o 0 1 b
sNOT.1:
|| Match code for alternative 1, stacksizes A: 0 B: 1
|| Building the contractum, Stacksizes A: 0 B: 1
.inline NOT
notB
.end
.d 0 1 b
rtn
.export e_deltaB_AND
.export e_deltaB_sAND
.export e_deltaB_nAND
.desc e_deltaB_AND e_deltaB_nAND e_deltaB_lAND 2 "AND"
.o 2 0
e_deltaB_lAND:
repl_args 1 1
.d 2 0
jsr eaAND
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaB_AND
.o 1 0
e_deltaB_nAND:
push_node _reserve 2
.d 2 0
jsr eaAND
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
eaAND:
|| BOOL
push_a 1
jsr_eval
pop_a 1
|| BOOL
jsr_eval
|| BOOL
pushB_a 1
|| BOOL
pushB_a 0
pop_a 2
.o 0 2 b b
e_deltaB_sAND:
.o 0 2 b b
sAND.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline AND
andB
.end
.d 0 1 b
rtn
.export e_deltaB_OR
.export e_deltaB_sOR
.export e_deltaB_nOR
.desc e_deltaB_OR e_deltaB_nOR e_deltaB_lOR 2 "OR"
.o 2 0
e_deltaB_lOR:
repl_args 1 1
.d 2 0
jsr eaOR
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaB_OR
.o 1 0
e_deltaB_nOR:
push_node _reserve 2
.d 2 0
jsr eaOR
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
eaOR:
|| BOOL
push_a 1
jsr_eval
pop_a 1
|| BOOL
jsr_eval
|| BOOL
pushB_a 1
|| BOOL
pushB_a 0
pop_a 2
.o 0 2 b b
e_deltaB_sOR:
.o 0 2 b b
sOR.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline OR
orB
.end
.d 0 1 b
rtn
.export e_deltaB_=B
.export e_deltaB_s=B
.export e_deltaB_n=B
.desc e_deltaB_=B e_deltaB_n=B e_deltaB_l=B 2 "=B"
.o 2 0
e_deltaB_l=B:
repl_args 1 1
.d 2 0
jsr ea=B
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaB_=B
.o 1 0
e_deltaB_n=B:
push_node _reserve 2
.d 2 0
jsr ea=B
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea=B:
|| BOOL
push_a 1
jsr_eval
pop_a 1
|| BOOL
jsr_eval
|| BOOL
pushB_a 1
|| BOOL
pushB_a 0
pop_a 2
.o 0 2 b b
e_deltaB_s=B:
.o 0 2 b b
s=B.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline =B
eqB
.end
.d 0 1 b
rtn
.export e_deltaB_<>B
.export e_deltaB_s<>B
.export e_deltaB_n<>B
.desc e_deltaB_<>B e_deltaB_n<>B e_deltaB_l<>B 2 "<>B"
.o 2 0
e_deltaB_l<>B:
repl_args 1 1
.d 2 0
jsr ea<>B
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaB_<>B
.o 1 0
e_deltaB_n<>B:
push_node _reserve 2
.d 2 0
jsr ea<>B
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea<>B:
|| BOOL
push_a 1
jsr_eval
pop_a 1
|| BOOL
jsr_eval
|| BOOL
pushB_a 1
|| BOOL
pushB_a 0
pop_a 2
.o 0 2 b b
e_deltaB_s<>B:
.o 0 2 b b
s<>B.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline <>B
eqB
notB
.end
.d 0 1 b
rtn
.export e_deltaB_BTOS
.export e_deltaB_sBTOS
.export e_deltaB_nBTOS
.desc e_deltaB_BTOS e_deltaB_nBTOS e_deltaB_lBTOS 1 "BTOS"
.o 2 0
e_deltaB_lBTOS:
update_a 1 0
create
update_a 0 2
pop_a 1
.d 2 0
jmp eaBTOS
.n 1 e_deltaB_BTOS
.o 1 0
e_deltaB_nBTOS:
push_node _reserve 1
.o 2 0
eaBTOS:
|| BOOL
jsr_eval
|| BOOL
pushB_a 0
pop_a 1
.o 1 1 b
e_deltaB_sBTOS:
.o 1 1 b
sBTOS.1:
|| Match code for alternative 1, stacksizes A: 0 B: 1
|| Building the contractum, Stacksizes A: 0 B: 1
.inline BTOS
create
fillB_b 0 0
pop_b 1
getWL 1
fillS_symbol 0 1
release
pop_a 1
.end
.d 1 0
rtn